/*
 * editarArticuloCampania.java
 *
 * Created on 7 de agosto de 2007, 17:31
 */

package despachador.administracion;

import dal.ArticuloDAL;
import excepciones.AvwException;
import java.io.*;
import java.net.*;
import java.util.ArrayList;

import javax.servlet.*;
import javax.servlet.http.*;
import negocio.ArticuloAsociado;
import negocio.ArticuloCampania;
import negocio.ArticuloWeb;
import negocio.CampaniaWeb;

/**
 *
 * @author Administrador
 * @version
 */
public class EditarArticuloCampania extends HttpServlet {
    
    /** Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods.
     * @param request servlet request
     * @param response servlet response
     */
    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        String opcion = "";
        ArticuloCampania articuloCampania = new ArticuloCampania();
        ArticuloWeb articuloWeb = new ArticuloWeb();
        if (request.getParameter("opcion")!=null){
            opcion = (String)request.getParameter("opcion");
        }
        String artCodigo = (String)request.getParameter("artCodigo");
        String camCodigo = (String)request.getParameter("camCodigo");
        CampaniaWeb campania = new CampaniaWeb(camCodigo);
        articuloWeb.setArtCodigo(artCodigo);
        articuloCampania.setArcArticulo(articuloWeb);
        
        if(opcion.equals("articulo")){
            String []esMasConsultado = request.getParameterValues("esMasConsultado");
            String []esMasPedido = request.getParameterValues("esMasPedido");
            if(esMasConsultado!= null){
                articuloCampania.setArcEsMasConsultado(true);
            }else{
                articuloCampania.setArcEsMasConsultado(false);
            }
            if(esMasPedido != null){
                articuloCampania.setArcEsMasPedido(true);
            }else{
                articuloCampania.setArcEsMasPedido(false);
            }
            try {
                ArticuloDAL.ModificarEsMasPedidoEsMasConsultado(articuloCampania);
            } catch (AvwException ex) {
                ex.printStackTrace();
            }
        }else if(opcion.equals("agregar")){
           String []codigoArt = request.getParameterValues("articuloCheck");
           int tipo = Integer.parseInt((String)request.getParameter("tipo"));
           ArrayList<ArticuloAsociado> arrayArticulos = new ArrayList<ArticuloAsociado>();
           for(int i=0; i<codigoArt.length; i++){
               ArticuloAsociado articulo = new ArticuloAsociado();
               articulo.setArasTipo(tipo);
               ArticuloCampania articuloCamp = new ArticuloCampania();
               articuloCamp.setArcArticulo(new ArticuloWeb(codigoArt[i]));
               articulo.setArasArticuloCampania(articuloCamp);
               arrayArticulos.add(articulo);
           }
            try {

                ArticuloDAL.insertarArticuloAsociado(arrayArticulos, articuloWeb, 
                        campania);
            } catch (AvwException ex) {
                ex.printStackTrace();
            }
           
        }else if(opcion.equals("modificarAsociado")){
            String titulo = (String)request.getParameter("titulo");
            int tipo = Integer.parseInt((String)request.getParameter("tipo"));
            String artCodigoRelacionado = (String)request.getParameter("artRelacionado");
            ArticuloAsociado articuloAsociado = new ArticuloAsociado();
            ArticuloCampania articuloC = new ArticuloCampania();
            articuloC.setArcArticulo(new ArticuloWeb(artCodigoRelacionado));
            articuloAsociado.setArasArticuloCampania(articuloC);
            articuloAsociado.setArasTitulo(titulo);
            articuloAsociado.setArasTipo(tipo);
            try {
                ArticuloDAL.ModificarArticulosAsociados(articuloAsociado,campania,articuloWeb);
            } catch (AvwException ex) {
                ex.printStackTrace();
            }
        }else if(opcion.equals("eliminarAsociado")){
            String artCodigoRelacionado = (String)request.getParameter("artRelacionado");
            ArticuloAsociado articuloAsociado = new ArticuloAsociado();
            ArticuloCampania articuloC = new ArticuloCampania();
            articuloC.setArcArticulo(new ArticuloWeb(artCodigoRelacionado));
            articuloAsociado.setArasArticuloCampania(articuloC);
            int tipo = Integer.parseInt((String)request.getParameter("tipo"));
            articuloAsociado.setArasTipo(tipo);
            try {
                ArticuloDAL.eliminarArticuloAsociado(articuloAsociado,campania,articuloWeb);
            } catch (AvwException ex) {
                ex.printStackTrace();
            }
        }
        armarPagina(request, response);
        
    }
    
    // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
    /** Handles the HTTP <code>GET</code> method.
     * @param request servlet request
     * @param response servlet response
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        processRequest(request, response);
    }
    
    /** Handles the HTTP <code>POST</code> method.
     * @param request servlet request
     * @param response servlet response
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        processRequest(request, response);
    }
    
    /** Returns a short description of the servlet.
     */
    public String getServletInfo() {
        return "Short description";
    }
    // </editor-fold>
    protected void armarPagina(HttpServletRequest request, HttpServletResponse response)
                    throws ServletException, IOException{
        // Especificamos que pagina se coloca en cada parte del layout
        request.setAttribute("1", "/vistas/administracion/encabezado.jsp");
        request.setAttribute("2", "/vistas/administracion/menu.jsp");
        request.setAttribute("3", "/vistas/administracion/editarArticuloCampania.jsp");
        request.setAttribute("4", "/vistas/administracion/pie.jsp");
        
        dispatch(request, response, "/compositor/administracion/trescuerpos.jsp");
    } 
    protected void dispatch(HttpServletRequest request,
            HttpServletResponse response, String page)
            throws javax.servlet.ServletException,
            java.io.IOException {
        RequestDispatcher dispatcher =
                getServletContext().
                getRequestDispatcher(page);
        dispatcher.forward(request, response);
    }
}
